home *** CD-ROM | disk | FTP | other *** search
/ Commodore Free 9 / Commodore_Free_Issue_09_2007_Commodore_Computer_Club.d64 / t.shredz64 1 < prev    next >
Text File  |  2023-02-26  |  8KB  |  249 lines

  1. u             The Shredz64
  2.       Project By Toni Westbrook
  3. PART 1
  4.  
  5. The Shredz64 project is an attempt to
  6. build an interface to connect the
  7. Playstation Guitar Hero controller
  8. (and any other PS controller) to the
  9. Commodore 64 computer, then create a
  10. Guitar Hero like game on the C64
  11. utilizing the guitar controller.
  12.  
  13. So far the project has been going
  14. well! As you can see, the interface,
  15. which I call the "PSX64", is 98%
  16. functional (There are some tiny bugs
  17. which don't really impact
  18. functionality on the whole). Not only
  19. are all guitar functions mapped over
  20. successfully, but it works great for
  21. playing C64 games with a normal dual
  22. shock controller. What's more, since
  23. the same DB9 port is used, the PSX64
  24. can be used on the Amiga, Atari and
  25. Sega Master System (All tested except
  26. SMS)..
  27.  
  28. The Shredz64 game itself is still in
  29. its infancy, but progressing nicely.
  30.  
  31. Most importantly, my journal of latest
  32. updates can be found on the "News
  33. Updates" page, for those interested. I
  34. don't have a ton of free time, but I'm
  35. very dedicated to this project, so it
  36. will progress, if only just slowly.
  37.  
  38. Shredz64 News 4/6/07 Lots of very
  39. promising progress tonight (and a few
  40. nights ago). First off, I implemented
  41. code that will read both note data for
  42. fret buttons and music data from SID
  43. files off of floppy disk. I also wrote
  44. some quick utilities on my Linux box
  45. to generate note files for testing. So
  46. all the static values are out of the
  47. program and its reading off files now.
  48. More importantly though, I implemented
  49. a good portion of the SID -> Shredz64
  50. converter tonight - this sounds much
  51. fancier than it actually is. The issue
  52. is normal SID files are big blocks of
  53. 6502 machine code that have been
  54. ripped (or created), but they contain
  55. code for manipulating the processor,
  56. memory, etc as opposed to just being
  57. music data. Not only does this waste
  58. CPU time, but its also difficult to
  59. switch back and forth between
  60. executing Shredz64 code and executing
  61. SID code. My solution for now was to
  62. hack the libsidplay library on my
  63. Linux box, and intercept any memory
  64. writes to the virtual SID chip
  65. (0xD4XX) and dump the address and the
  66. value to a binary file, along with the
  67. relative time the memory write was
  68. made. E.g. I play a SID file on my
  69. computer, and in addition to playing
  70. it it dumps all the SID chip data to a
  71. file. Shredz64 then uses that file as
  72. its music data. Actually, I didn't
  73. implement the timing tonight, but I
  74. did manually set the timing inside the
  75. game just to test it out, and it
  76. played the music pretty accurately!
  77. Very promising for first try. I do
  78. need to compress the files somehow, at
  79. least look for repeating sequences,
  80. since they get pretty big. Hopefully
  81. filesize won't end up being an
  82. impossible issue. But hearing music
  83. out of the game for the first time
  84. tonight sure was awesome!
  85.  
  86. 3/26/07 I added the applause meter
  87. tonight that shows how well you're
  88. doing overall and how close you are to
  89. failing. As can be seen, its a
  90. vertical bar separated into three
  91. sections, filling from bottom to top.
  92. When doing well, the bar fill is
  93. green, when okay its yellow, and when
  94. bad its red. When empty its game over!
  95. (Though I don't have a game over yet).
  96. Your applause increases when you
  97. correctly strum a note, and decreases
  98. if you miss a note or incorrectly
  99. strum. I also fixed up some bugs
  100. recognizing correct strumming, and
  101. separated the code out into multiple
  102. files now that things are getting
  103. bigger. Next up is reading note and
  104. song data from files, and then the SID
  105. converter plugin!
  106.  
  107. 3/21/07 I snuck some hours in
  108. yesterday before I went to the dentist
  109. and worked on things. Shredz64 can now
  110. take a (static) list of button data
  111. (e.g. buttons to be pressed at what
  112. time and in what order) and correctly
  113. show it on the screen. For instance, I
  114. can encode data that says "A green
  115. button should be pressed at 00:00:10,
  116. 00:00:20, and 00:00:45, a red button
  117. should be pressed at 00:00:10,
  118. 00:00:30, etc, and it will correctly
  119. show and scroll the sprites on screen.
  120. It will also detect if you strum the
  121. correct chords at the correct times
  122. and increase your score upon success.
  123. I've also added a "Shredocity" meter
  124. that mirrors the functionality of Star
  125. Power in Guitar Hero for the
  126. Playstation. I will soon be adding a
  127. crowd meter that will determine how
  128. well you're playing..
  129.  
  130.  The Shredocity meter is a bit chunky
  131. looking right now, I'll be thinning
  132. out the graphics. Overall, things are
  133. going really well. The framework of
  134. all the controls and graphics are
  135. pretty much done, there is only the
  136. big project left of incorporating SIDs
  137. in as the source of the music, and the
  138. smaller task of reading the song data
  139. from files on disk. SID music is
  140. ironically incredibly hard to work
  141. with on a C64 since its just machine
  142. code that was ripped from some other
  143. program, but I have plans
  144. incorporating SID plugins for XMMS to
  145. convert it over to a different usable
  146. format. More on that later after some
  147. code has been written.
  148.  
  149. 3/4/07 Well, I got a few more things
  150. done. As I mention on the Shredz64
  151. page, graphics are simple and confined
  152. to PETSCII and sprites right now, no
  153. high res stuff. I want to save all the
  154. processing power I can for good
  155. response and music. I'll tweak up the
  156. sprites later on, but for now this is
  157. fine. Anyway - I have the fret board
  158. showing, and button indicators at the
  159. bottom. They do respond to the guitar
  160. controller now, so if you press a
  161. button on the guitar it will light up
  162. on the screen. I have the strum bar
  163. just playing a beep out of the C64
  164. right now to let me know its working.
  165. As can be seen, I also did a simple
  166. sprite to represent the note/button
  167. as it slides down the fret board.
  168.  
  169. 3/2/07 I had a day off from work
  170. today, though I ended up sleeping
  171. pretty late and not getting everything
  172. done I wanted to. I did, however,
  173. build a PC64 cable and get cbmlink
  174. installed and running on my Debian
  175. box. Now I can successfully read/write
  176. files/disk images to my C64 from my
  177. PC, read/write memory, remotely
  178. execute programs, run disk commands,
  179. etc. The reason this is related to
  180. Shredz64 is now I can actually test it
  181. on a real C64 with the controller as
  182. opposed to only the emulator with no
  183. controller. The cable isn't too
  184. exciting looking to no pictures, but
  185. it does operate on a 4-bit parallel
  186. connection between the user port and
  187. the parallel port, as opposed to a
  188. serial connection.
  189.  
  190. 2/27/07 Well, I updated the webpage a
  191. bit. Nothing too fancy, but I wanted
  192. to clean it up a bit so some sections
  193. were separated out. This page will
  194. still serve as a log of things I'm
  195. doing.
  196.  
  197. In technical news, I've got some
  198. graphical routines done and have a
  199. fretboard on the screen with scrolling
  200. buttons. Screenshots later when I have
  201. something a little more to show.
  202.  
  203. 2/21/07 Lots of good work and news
  204. going on with this project, I figured
  205. it was about time to actually update
  206. this page with what's going on.The
  207. soldered prototype for the PSX -> C64
  208. adapter is now done, as can be seen
  209. here:
  210.  
  211. The converter now does the following:
  212.  
  213. 1. Determines whether a normal
  214. controller is plugged in or a guitar
  215. controller, and maps buttons
  216. accordingly
  217.  
  218. 2. Turns on analog mode for guitar
  219. controller and successfully reads
  220. whammy bar. (Updates later about
  221. getting this working for all those
  222. interested)
  223.  
  224. 3. Maps Strum up, Strum down, and
  225. guitar lift up to static values on one
  226. of the POT lines, which allows the C64
  227. to receive ALL information from the
  228. guitar (except start and select
  229. button)
  230.  
  231. 4. Allows button macros to be
  232. programmed onto the R1/R2/L1/L2
  233. buttons in controller mode, up to 127
  234. button sequences PER macro
  235.  
  236. 5. If the user selects analog mode on
  237. a normal controller, it will map the
  238. left analog stick to the normal
  239. digital directions
  240.  
  241. 6. And converts all buttons
  242. successfully of course.
  243.  
  244.  
  245. Continued in PART 2
  246.  
  247.  
  248.  
  249.  
  250.